<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of produtos
 *
 * @author link2
 */
class Moto extends ADM_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->add_module('local');
        $this->load->config('local/parametros');
        $this->load->model('local/local_idiomas_model');

        $this->load->config('veiculo/parametros');

        //$this->load->language('veiculo/modelos');
        //$this->load->helper('html');
        $this->load->model('veiculo/moto_marca_model');
        $this->load->model('veiculo/moto_modelo_model');
        $this->load->model('veiculo/moto_estilo_model');
        $this->load->model('veiculo/moto_modelo_dados_model');

        $this->load->library('form_validation');

        $this->checar_metodo(uri_string());
    }

    public function marca_cadastrar() {
        $this->load->language('veiculo/marcas');
        $v_dados = array();
        $v_dados['title_acao'] = $this->lang->line('title_acao_cadastrar');
        //$v_dados['nome_marca'] = $this->lang->line('nome_marca');
        $v_dados['id'] = '';
        $v_dados['nome_marca'] = '';

        $v_dados['link_listar_moto_marcas'] = $this->permissions->get_url('veiculo_moto_marca_consultar');
        $v_dados['action_moto_marca_gravar'] = $this->permissions->get_url('veiculo_moto_marca_gravar');

        $v_dados = $this->lang->multi_line($v_dados);
        //pre($v_dados);
        $this->parser->parse_cms('moto_marca_view', $v_dados);
    }

    public function marca_gravar() {
        $this->load->language('veiculo/marcas');
        $v_dados = array();
        $dados = array();

        $id = $this->input->post('id');
        $this->form_validation->set_rules('marca', 'marca', 'required|trim');
        if ($this->form_validation->run() == FALSE) {
            $v_dados['cod'] = 000;
            $v_dados['msg'] = $this->lang->line('lang_header_submit_success');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else if ($this->moto_marca_model->getMarcaByNome($this->input->post('marca')) != null) {
            $v_dados['cod'] = 001;
            $v_dados['msg'] = str_replace('%s', $this->input->post('marca'), $this->lang->line('lang_marca_unica'));
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else {
            if ($id == '') {
                $dados['nome'] = $this->input->post('marca');
                $dados['status'] = '1';
                $retorno = $this->moto_marca_model->inserir($dados);
            } else {
                //$this->produtos_opcional_model->alterar($this->input->post('id'), $_dados);
                $dados['nome'] = $this->input->post('marca');
                $retorno = $this->moto_marca_model->atualizar($id, $dados);
            }
            if ($retorno != null) {
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            } else {
                $v_dados['cod'] = 000;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_warning');
                $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            }
        }
        echo json_encode($v_dados);
    }

    public function marca_consultar() {
        $this->load->language('veiculo/marcas');
        $v_dados = array();
        $v_dados['marcas'] = array();
        $_b_consultar = $this->moto_marca_model->getAllMarcasOrderByNome();
        if ($_b_consultar != null) {
            foreach ($_b_consultar as $k => $v) {
                $v_dados['marcas'][$k]['nome_marca'] = $v->nome;
                $v_dados['marcas'][$k]['codigo'] = $v->status;
                $v_dados['marcas'][$k]['acao'] = anchor(base_cms() . $this->permissions->get_url('veiculo_moto_marca_alterar') . '/' . $v->id, $this->lang->line('title_acao_alterar'), 'class="btn small"');
            }
        }
        $v_dados['link_cadastrar_moto_marca'] = $this->permissions->get_url('veiculo_moto_marca_cadastrar');

        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('moto_marca_lista_view', $v_dados);
    }

    public function marca_alterar($id) {
        $this->load->language('veiculo/marcas');
        $v_dados = array();
        $b_consultar = $this->moto_marca_model->getMarca($id);
        $v_dados['title_acao'] = $this->lang->line('title_acao_alterar');
        $v_dados['nome_marca'] = $this->lang->line('nome_marca');
        $v_dados['id'] = $id;
        $v_dados['nome_marca'] = $b_consultar[0]->nome;

        $v_dados['link_listar_moto_marcas'] = $this->permissions->get_url('veiculo_moto_marca_consultar');
        $v_dados['action_moto_marca_gravar'] = $this->permissions->get_url('veiculo_moto_marca_gravar');

        $v_dados = $this->lang->multi_line($v_dados);
        //pre($v_dados);
        $this->parser->parse_cms('moto_marca_view', $v_dados);
    }

    public function modelo_cadastrar() {
        $this->load->language('veiculo/modelos');
        $v_dados = array();
        $v_dados['title_acao'] = $this->lang->line('title_acao_cadastrar');
        $v_dados['nome_marca'] = $this->lang->line('nome_marca');
        $v_dados['id'] = '';
        $v_dados['nome_modelo'] = '';
        $v_dados['cilindrada'] = '';
        $v_dados['ano_modelo'] = array();

        $v_dados['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array(), 'required');
        $v_dados['estilos'] = form_dropdown('estilos', $this->moto_estilo_model->combo(), array(), 'required');
        $v_dados['link_listar_moto_modelos'] = $this->permissions->get_url('veiculo_moto_modelo_consultar');
        $v_dados['action_moto_modelo_gravar'] = $this->permissions->get_url('veiculo_moto_modelo_gravar');

        $v_dados = $this->lang->multi_line($v_dados);
        //pre($v_dados);
        $this->parser->parse_cms('moto_modelo_view', $v_dados);
    }

    public function modelo_gravar() {
        $this->load->language('veiculo/modelos');
        $v_dados = array();
        $dados = array();

        $id = $this->input->post('id');
        $this->form_validation->set_rules('modelo', 'modelo', 'required|trim');
        $this->form_validation->set_rules('marcas', 'marcas', 'required|trim');
        $this->form_validation->set_rules('estilos', 'estilos', 'required|trim');
        $this->form_validation->set_rules('cilindrada', 'cilindrada', 'required|trim');

        if ($this->form_validation->run() == FALSE) {
            $v_dados['cod'] = 000;
            $v_dados['msg'] = $this->lang->line('lang_header_submit_success');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else if ($this->moto_modelo_model->getModeloByNome($this->input->post('modelo'), $this->input->post('marcas')) != null) {
            $v_dados['cod'] = 001;
            $v_dados['msg'] = str_replace('%s', $this->input->post('modelo'), $this->lang->line('lang_modelo_unico'));
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else {
            if ($id == '') {
                $dados['nome'] = $this->input->post('modelo');
                $dados['cilindrada'] = $this->input->post('cilindrada');
                $dados['marca_id'] = $this->input->post('marcas');
                $dados['estilo_id'] = $this->input->post('estilos');
                $retorno = $this->moto_modelo_model->inserir($dados);
            } else {
                $dados['nome'] = $this->input->post('modelo');
                $dados['cilindrada'] = $this->input->post('cilindrada');
                $dados['marca_id'] = $this->input->post('marcas');
                $dados['estilo_id'] = $this->input->post('estilos');
                $retorno = $this->moto_modelo_model->atualizar($id, $dados);
            }
            if ($retorno != null) {
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            } else {
                $v_dados['cod'] = 000;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_warning');
                $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            }
        }

        echo json_encode($v_dados);
    }

    public function modelo_consultar() {
        $this->load->language('veiculo/modelos');
        $v_dados['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array(), 'required');
        $v_dados['action_moto_modelo_consultar'] = $this->permissions->get_url('veiculo_moto_modelo_consultar');

        $marca = $this->input->post('marcas');

        if ($marca == false) {
            $v_dados['modelos'] = array();
        } else {
            $v_dados['modelos'] = array();
            $b_consultar = $this->moto_modelo_model->getAllModelosByMarca($marca);
            if ($b_consultar != null) {
                foreach ($b_consultar as $k => $v) {
                    $v_dados['modelos'][$k]['nome_modelo'] = $v->nome;
                    $v_dados['modelos'][$k]['marca'] = $v->marca;
                    $v_dados['modelos'][$k]['acao'] = anchor(base_cms() . $this->permissions->get_url('veiculo_moto_modelo_alterar') . '/' . $v->id . '/' . $v->marca_id, $this->lang->line('title_acao_alterar'), 'class="btn small"');
                }
            }
        }
        $v_dados['link_cadastrar_moto_modelo'] = $this->permissions->get_url('veiculo_moto_modelo_cadastrar');
        $v_dados = $this->lang->multi_line($v_dados);
        $this->parser->parse_cms('moto_modelo_lista_view', $v_dados);
    }

    public function modelo_alterar($id, $marca_id, $ano_modelo = null) {
        $this->load->language('veiculo/modelos');
        $v_dados = array();
        $b_consultar = $this->moto_modelo_model->getModelo($id);
        $v_dados['title_acao'] = $this->lang->line('title_acao_alterar');
        $v_dados['id'] = $id;
        $v_dados['nome_modelo'] = $b_consultar[0]->nome;
        $v_dados['cilindrada'] = $b_consultar[0]->cilindrada;

        $v_dados['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array('selected' => $marca_id), 'required');
        $v_dados['estilos'] = form_dropdown('estilos', $this->moto_estilo_model->combo(), array('selected' => $b_consultar[0]->estilo_id), 'required');

        $v_dados['ano_modelo'] = array();
        if ($ano_modelo == null) {
            //$v_dados['from'] = 'from_cad_moto_modelo';
            $v_dados['ano_modelo'][0]['id_ano'] = '';
            $v_dados['ano_modelo'][0]['id_modelo'] = $id;
            $v_dados['ano_modelo'][0]['action_moto_ano_modelo_gravar'] = $this->permissions->get_url('veiculo_moto_ano_modelo_gravar');
            $v_dados['ano_modelo'][0]['ano_modelo'] = '';
            $v_dados['ano_modelo'][0]['preco'] = '';
            $v_dados['ano_modelo'][0]['combustivel'] = '';
            $v_dados['ano_modelo'][0]['fipe'] = '';
        } else {
            //$v_dados['from'] = 'from_cad_moto_ano_modelo';
            $b_consultar = $this->moto_modelo_dados_model->getAnoModeloFull($ano_modelo);
            $v_dados['ano_modelo'][0]['id_ano'] = $ano_modelo;
            $v_dados['ano_modelo'][0]['id_modelo'] = $id;
            $v_dados['ano_modelo'][0]['action_moto_ano_modelo_gravar'] = $this->permissions->get_url('veiculo_moto_ano_modelo_gravar');
            $v_dados['ano_modelo'][0]['ano_modelo'] = $b_consultar->ano;
            $v_dados['ano_modelo'][0]['preco'] = $b_consultar->preco_medio;
            $v_dados['ano_modelo'][0]['combustivel'] = $b_consultar->combustivel;
            $v_dados['ano_modelo'][0]['fipe'] = $b_consultar->codigo_fipe;
        }

        $v_dados['link_listar_moto_modelos'] = $this->permissions->get_url('veiculo_moto_modelo_consultar');
        $v_dados['action_moto_modelo_gravar'] = $this->permissions->get_url('veiculo_moto_modelo_gravar');

        $v_dados = $this->lang->multi_line($v_dados);
        //pre($v_dados);
        $this->parser->parse_cms('moto_modelo_view', $v_dados);
    }

    public function ano_modelo_gravar() {
        $this->load->language('veiculo/modelos');
        $v_dados = array();
        $dados = array();

        $ano = $this->input->post('id_ano');
        $this->form_validation->set_rules('ano_modelo', 'ano_modelo', 'required|numeric|trim');

        if ($this->form_validation->run() == FALSE) {
            $v_dados['cod'] = 000;
            $v_dados['msg'] = $this->lang->line('lang_header_submit_success');
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else if ($this->moto_modelo_dados_model->getAnoModelo($this->input->post('id_modelo'), $this->input->post('ano_modelo')) != null) {
            $v_dados['cod'] = 001;
            $v_dados['msg'] = str_replace('%s', $this->input->post('ano_modelo'), $this->lang->line('lang_ano_modelo_unico'));
            $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
        } else {
            pre($ano);
            if ($ano == '') {
                pre('1');
                $dados['moto_modelo_id'] = $this->input->post('id_modelo');
                $dados['ano'] = $this->input->post('ano_modelo');
                $dados['preco_medio'] = $this->input->post('preco');
                $dados['combustivel'] = $this->input->post('combustivel');
                $dados['codigo_fipe'] = $this->input->post('fipe');
                $retorno = $this->moto_modelo_dados_model->inserir($dados);
            } else {
                pre('2');
                $dados['moto_modelo_id'] = $this->input->post('id_modelo');
                $dados['ano'] = $this->input->post('ano_modelo');
                $dados['preco_medio'] = $this->input->post('preco');
                $dados['combustivel'] = $this->input->post('combustivel');
                $dados['codigo_fipe'] = $this->input->post('fipe');
                $retorno = $this->moto_modelo_dados_model->atualizar($ano, $dados);
            }

            pre($retorno);
            pre($dados);

            if ($retorno != null) {
                $v_dados['cod'] = 999;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_success');
                $v_dados['header'] = $this->lang->line('lang_header_submit_success');
            } else {
                $v_dados['cod'] = 002;
                $v_dados['msg'] = $this->lang->line('lang_msg_submit_warning');
                $v_dados['header'] = $this->lang->line('lang_header_submit_warning');
            }
        }
        echo json_encode($v_dados);
    }

    public function ano_modelo_consultar() {
        $this->load->language('veiculo/modelos');
        $v_dados['action_moto_ano_modelo_consultar'] = $this->permissions->get_url('veiculo_moto_ano_modelo_consultar');

        $modelo = $this->input->post('modelos');
        if ($modelo == false) {
            $v_dados['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array(), 'required id="marcas"');
            $v_dados['modelos'] = form_dropdown('modelos', array('' => 'Selecionar'), array(), 'required id="modelos"');
            $v_dados['ano_modelos'] = array();
        } else {
            $v_dados['marcas'] = form_dropdown('marcas', $this->moto_marca_model->combo(), array('selected' => $this->input->post('marcas')), 'required id="marcas"');
            $v_dados['modelos'] = form_dropdown('modelos', array($this->moto_modelo_model->combo($this->input->post('marcas'))), array('selected' => $this->input->post('modelos')), 'required id="modelos"');
            $v_dados['ano_modelos'] = array();
            $b_consultar = $this->moto_modelo_dados_model->getAllAnoModelosByModelo($modelo);
            if ($b_consultar != null) {
                foreach ($b_consultar as $k => $v) {
                    $moto_modelo = $this->moto_modelo_model->getModelo($v->moto_modelo_id);
                    $v_dados['ano_modelos'][$k]['ano_modelo'] = $v->ano;
                    $v_dados['ano_modelos'][$k]['modelo'] = $moto_modelo[0]->nome;
                    $v_dados['ano_modelos'][$k]['marca'] = $moto_modelo[0]->marca;
                    $v_dados['ano_modelos'][$k]['acao'] = anchor(base_cms() . $this->permissions->get_url('veiculo_moto_modelo_alterar') . '/' . $moto_modelo[0]->id . '/' . $moto_modelo[0]->marca_id . '/' . $v->id, $this->lang->line('title_acao_alterar'), 'class="btn small"');
                }
            }
        }
        $v_dados = $this->lang->multi_line($v_dados);
        //pre($v_dados);
        $this->parser->parse_cms('moto_ano_modelo_lista_view', $v_dados);
    }

}
